package lv.servidordisqueria.domain;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

import lv.mensajeriadisqueria.idomain.IAutor;
import lv.mensajeriadisqueria.idomain.ITversion;

/**
 * Es la clase coleccion cual se mapea con la tabla AUTOR de la
 * base de datos
 */
@Entity
@Table(name = "AUTOR")
@PrimaryKeyJoinColumn(name = "ID_MUSICO")
public class Autor extends Musico implements IAutor {

	/**
	 * 
	 */
	private static final long serialVersionUID = 6789075502126671095L;

	@ManyToMany(targetEntity = Tversion.class, 
			cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
	@JoinTable(name="RELACION_AUTOR_VERSION", joinColumns=@JoinColumn(name="ID_MUSICO"),
			inverseJoinColumns=@JoinColumn(name="ID_TVERSION"))
	private List<ITversion> versiones;
	
	public Autor() {}
	
	public Autor(String nombre, String nacionalidad, Boolean vivo) {
		super(nombre, nacionalidad, vivo);
	}

	@Override
	public List<ITversion> getVersiones() {
		return versiones;
	}

	@Override
	public void setVersiones(List<ITversion> versiones) {
		this.versiones = versiones;
	}
}
